Complex information system environments often involve different data models between the requesting side which requests information or functionality, and the responding side which responds with information or performs requested functionality. Moreover, the responding side in such complex environments often includes a plurality of data resources, which may be distributed both in a scale-out sense (data concerning different entities being distributed across several instances of one and the same type of directory) and in an information tree distribution sense (different types of information being located in different types of directories). In such complex information system environments it is necessary to include some sort of data mediation in the information system to allow communication between the requesting side and the responding side.
Commonly, complex information systems can be found in mobile tele-communications system like GSM, UMTS, D-AMPS, CDMA2000, FOMA or TD-SCDMA, and in particular the directory services which are required in order to administrate various subscriber data and transactions in the system. Directory services for mobile telecommunication will be used in the remainder of this document as a non-limiting example of an environment in which the present invention may be exercised.
The home location register (HLR) and the home subscriber server (HSS) are two examples of subscriber directories. It is currently believed that for future mobile telecommunication system architectures, such as fourth generation or beyond, there will be a partitioning of the subscriber directories, such as HLR or HSS, into “dataless” front-end devices, which control traffic and signaling but contain no telecom directory data, and a separate generic data layer implemented by directory services based on for instance the lightweight directory access protocol (LDAP). The size of such directories may be enormous, encompassing up to many tens of millions of subscribers, each being identified by several identifiers, and a total throughput of the order of 100,000 transactions per seconds, with permitted latency being limited to a few milliseconds. Because of the size, the data layer will have to be scaled out across many implementing data resources (e.g. LDAP directory servers) and also geographically. Data mediation becomes a critical task in such a complex and large environment.
Data messages which represent requests for data services are typically expressed by the requestor (such as a software application) in a first format for data access. The first format for data access follows a predefined syntax and includes a plurality of message parameters, the purpose of which is to contain the data necessary to specify the requested data service. Once created, the data message is then encoded into a second format for transport. The second format is such that the encoded data message can be conveniently transmitted onto a data communication network included in the information system. When the data resources which provide the requested data services are LDAP directory servers, the first format for data access is thus LDAP. A predefined standard notation known as abstract syntax notation one (ASN.1) is then used together with associated encoding rules, such as basic encoding rules (BER), to encode an LDAP-formatted data message into the second, binary format suitable for transport.
FIG. 1 illustrates a prior art approach of performing data mediation in a mobile telecommunication system using LDAP-based directory services. An incoming data stream 16 is received from a data communication network by a data mediator in a step 50. The data stream 16 is analyzed so as to determine a complete inbound data message 12in (a procedure known as framing). The inbound data message 12in is a BER-encoded binary representation of an LDAP message as created in the first format for data access by a requestor, representing e.g. a request for a data service provided by any of a plurality of data resources in the form of LDAP directory servers, and encoded into its second format for transport in the form of a sequence of octets 13. The LDAP message (in its first format) contains a plurality of message parameters. In a step 52, the inbound data message 12in is parsed for every message parameter by parsing functionality in the data mediator. As the message parameters are parsed, a high-level representation of each parsed parameter is created in e.g. the form of a data object, record or data variable. Thus, a run-time data structure 34 is created in step 52 as a complete representation of the inbound data message 12in with its message parameters. No further use is made of the inbound data message 12in, as stored at the reception thereof in a memory of the data mediator.
In a step 54, a data mediation logic is executed by the data mediator. This involves processing the created run-time data structure 34 with the parsed message parameters to inspect the message parameters which are of particular interest for the data mediation task at hand, and adapting the message parameters if necessary for the subsequent travel of the data message towards its destination at the receiving side. Adapting the message parameters involves modifying the run-time data structure 34 into a modified version 34′, reflecting any changed, deleted or added message parameters as produced by the data mediation logic during step 54. This may in some cases involve copying of the entire run-time data structure 34 into a copy 34′.
Once the data mediation logic has finished processing the run-time data structure 34/34′ in step 54, the data mediator builds in step 56 a new outbound data message 12out from scratch, by encoding the processed run-time data structure 34′ into the second format for transport. The thus generated outbound data message 12out is finally sent in an outgoing data stream 18 on the data communication network.
Whereas the prior art approach referred to above is believed to fulfill its purposes when it comes to performing data mediation as such, the present inventor has identified performance problems with this approach, since it is neither efficient in memory usage, nor in processing cost. A resulting penalty is that the latency between requests and responses in the information system can rise to unacceptable levels.
Therefore, there is a need for improvements in the way data mediation is performed in complex information systems.